package com.hspedu.string;

public class StringExercise03 {
    public static void main(String[] args) {
        String a = "hsp";//a 指向常量池的"hsp"
        String b = new String("hsp");//b指向堆中的对象
        System.out.println(a.equals(b));//true
        System.out.println(a == b);//false

        /**
         * 当调用 intern 方法时，如果池已经包含一个等于次String对象的字符串(用equals(Object)方法确定)，
         * 则返回池中的字符串。否则，将此String对象添加到池中，并返回此String对象的引用
         */
        System.out.println(a == b.intern());//true  b.intern()方法最终返回的是常量池的地址(对象)
        System.out.println(b == b.intern());//false b指向堆中的对象
    }
}
